table of contents
OUTB(2) | Manuel du programmeur Linux | OUTB(2) |
NOM¶
outb, outw, outl, outsb, outsw, outsl - Écrire sur un port
d'E/S
inb, inw, inl, insb, insw, insl - Lecture depuis un port d'E/S.
outb_p, outw_p, outl_p, inb_p, inw_p, inl_p - Lire/Écrire avec un
délai
DESCRIPTION¶
Cette famille de fonctions est utilisée pour des entrées/sorties de bas niveau.
Elles ont principalement été conçues pour un usage interne au noyau, mais sont quand même utilisables avec des processus utilisateurs, à condition de suivre les instructions suivantes.
Compiler le programme avec les options -O or -O2 ou équivalent. Ces fonctions sont en réalité des macros développées en ligne, et ne seront pas substituées sans valider l'optimisation. Ceci causerait des erreurs de références non résolues au moment de l'édition des liens.
Utiliser ioperm(2) ou éventuellement iopl(2) pour demander au noyau d'autoriser l'application à accéder aux ports d'entrées/sorties en question. Une omission de cette étape déclencherait une faute de segmentation.
HISTORIQUE¶
Les macros in[bw] et out[bw] ont pour origine les instructions
équivalentes disponibles sur les processeurs ix86 (alias ia32) qui
permettent d'accéder à l'espace mémoire utilisé
par les périphériques. Sur d'autres architectures (m68k en
particulier), les espaces mémoire système et
d'entrée-sortie sont fusionnés (l'espace d'E/S utilise un
emplacement fixe) et ces macros se développent en de classiques
adressages mémoire.
De toutes façons, la représentation utilisée sur ix86 est
incohérente puisque les concepteurs, bien qu'ayant créé
un espace spécifique aux E/S, ont mappé dans la mémoire
système les registres des cartes graphiques, ...
CONFORMITɶ
outb et les autres fonctions dépendent du matériel. Les arguments port et value sont dans l'ordre inverse de la plupart des mnémoniques implémentés dans les assembleurs disponibles sous DOS
VOIR AUSSI¶
TRADUCTION¶
Christophe Blaess, 1997 Thierry Vignaud <tvignaud@mandrakesoft.com>, 2000
28 février 2000 | Linux |